package com.ruoyi.cbs.approval.mapper;

import java.util.List;
import com.ruoyi.cbs.approval.domain.ApprovalResult;
import org.apache.ibatis.annotations.Param;

/**
 * 审核结果Mapper接口
 * 
 * @author ruoyi
 * @date 2025-11-12
 */
public interface ApprovalResultMapper 
{
    /**
     * 查询审核结果
     * 
     * @param id 审核结果主键
     * @return 审核结果
     */
    public ApprovalResult selectApprovalResultById(Long id);

    /**
     * 查询审核结果列表
     * 
     * @param approvalResult 审核结果
     * @return 审核结果集合
     */
    public List<ApprovalResult> selectApprovalResultList(ApprovalResult approvalResult);

    /**
     * 新增审核结果
     * 
     * @param approvalResult 审核结果
     * @return 结果
     */
    public int insertApprovalResult(ApprovalResult approvalResult);

    /**
     * 修改审核结果
     * 
     * @param approvalResult 审核结果
     * @return 结果
     */
    public int updateApprovalResult(ApprovalResult approvalResult);
    /**
     * 更新执行状态
     * @param approvalResult
     * @return
     */
    public int updateExecuteStatus(ApprovalResult approvalResult);

    /**
     * 删除 对象审核流程中 未执行的审核任务
     * @param targetId 目标ID
     * @param targetType 目标类型
     * @return 结果
     */
    public int deleteByTargetId(@Param("targetId") Long targetId, @Param("targetType") String targetType);

    /**
     * 批量删除审核结果
     *
     * @param configId 审核配置主键
     * @return 结果
     */
    public int deleteByConfigId(@Param("configId") Long configId, @Param("targetId") Long targetId, @Param("targetType") String targetType);

    /**
     * 删除审核结果
     * 
     * @param id 审核结果主键
     * @return 结果
     */
    public int deleteApprovalResultById(Long id);

    /**
     * 批量删除审核结果
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteApprovalResultByIds(Long[] ids);

    /**
     * 查询用户的审核任务列表
     * @param approvalResult
     * @return
     */
    public List<ApprovalResult> selectUserApprovalList(ApprovalResult approvalResult);

}
